#include <iostream>
#include <vector>
#include <set>
#include <string>
using namespace std;
class solution
{
public:
	solution()
	{
		fib[0] = 1;
		fib[1] = 2;
		for(int i = 2 ; i < 7; ++i)
			fib[i] =  fib[i-1] + fib[i-2];
	}
	vector<string> luckyString(const string &s)
	{

		int arr[26];
		set<string> temp;
		for(int i = 0 ; i < s.size(); ++i)
		{
			int count = 0;
			clear(arr);
			for(int j = i ; j < s.size() ; ++j)
			{
				int idx = static_cast<int>(s[j] - 'a');
				// cout<<"idx : "<<s[j] << idx<<endl;
				if(!arr[idx])
				{
					arr[idx]  = 1;
					++count;
				}
				// cout<<"count : "<<count<<endl;
				if(isFib(count))
				{
					string in(s.substr(i,j-i+1));
					// cout<<in<<endl;
					temp.insert(in);
				}
			}
		}
		vector<string> result(temp.begin(),temp.end());
		printV(result);
		return result;
	}

	void clear(int arr[])
	{
		for(int i = 0 ; i < 26;++i)
			arr[i] = 0;
	}

	bool isFib(int count)
	{
		for(int i = 0 ; i < 7 ; ++i)
			if(count == fib[i])
				return true;
		return false;
	}

	void printV(const vector<string> &s)
	{
		for(const string &str :s)
			cout<<str<<endl;
	}
private:
	int fib[7];
};

int main()
{
	solution s;
	string in;
	cin>>in;
	s.luckyString(in);

	return 0;
}